/***
 * Copyright (c) 2023 murenchao
 * taomu is licensed under Mulan PubL v2.
 * You can use this software according to the terms and conditions of the Mulan PubL v2.
 * You may obtain a copy of Mulan PubL v2 at:
 *       http://license.coscl.org.cn/MulanPubL-2.0 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PubL v2 for more details.
 */
package cool.taomu.box.crypto;

import cool.taomu.box.crypto.AbsCrypto

class Base64 extends AbsCrypto {
    new(byte[] src) {
    	this.src = src;
    }

    new(ICrypto c) {
        this.c = c;
    }

    override byte[] encode() {
        if (c !== null) {
            return org.apache.commons.codec.binary.Base64.encodeBase64(c.encode());
        }
        return org.apache.commons.codec.binary.Base64.encodeBase64(this.src);
    }

    override byte[] decode() {
        if (c !== null) {
        	var byte[] base64Src = org.apache.commons.codec.binary.Base64.decodeBase64(this.c.getData());
        	this.c.setData(base64Src);
            return c.decode();
        }else {
        	return  org.apache.commons.codec.binary.Base64.decodeBase64(this.src);
        }
    }
}
